Fast implementation of the datetime type
import datetime as dt
a_date = dt.date(year=2020, month=12, day=31)
a_date
# datetime.date(2020, 12, 31)
a_date.year, a_date.month, a_date.day
# (2020, 12, 31)
a_date.isoformat()
# '2020-12-31'
a_date.strftime("%a %d %b %Y")
# 'Thu 31 Dec 2020'import datetime as dt
dt.date.today()
# datetime.date(2020, 8, 31)
dt.date.fromisoformat("2020-12-31") # ISO to POSIX
# datetime.date(2020, 12, 31)import datetime as dt
a_time = dt.time(hour=23, minute=59, second=59, microsecond=999999)
a_time
# datetime.time(23, 59, 59, 999999)
a_time.hour, a_time.minute, a_time.second, a_time.microsecond
# (23, 59, 59, 999999)
a_time.isoformat()
# '23:59:59.999999'
a_time.strftime("%H:%M:%S")
# '23:59:59'import datetime as dt
dt.time.fromisoformat("23:59:59") # ISO to POSIX
# datetime.time(23, 59, 59)
dt.time.fromisoformat("23:59:59:999999") # ISO to POSIX
# datetime.time(23, 59, 59, 999999)import datetime as dt
a_datetime = dt.datetime(year=2020, month=12, day=31, hour=23, minute=59, second=59, microsecond=999999)
a_datetime
# datetime.datetime(2020, 12, 31, 23, 59, 59, 999999)
a_datetime.year, a_datetime.month, a_datetime.day
# (2020, 12, 31)
a_datetime.hour, a_datetime.minute, a_datetime.second, a_datetime.microsecond
# (23, 59, 59, 999999)
a_datetime.isoformat()
# '2020-12-31T23:59:59.999999'
a_datetime.strftime("%Y-%m-%d %H:%M:%S")
# '2020-12-31 23:59:59'import datetime as dt
dt.datetime.now()
# datetime.datetime(2020, 8, 31, 12, 35, 10, 253855)import datetime as dt
import time as tm
timestamp = tm.time() # time in seconds since 1970-01-01
timestamp
# 1598873710.315678
a_datetime = dt.datetime.fromtimestamp(timestamp) # Unix to POSIX
a_datetime
# datetime.datetime(2020, 8, 31, 12, 35, 10, 315678)
dt.datetime.timestamp(a_datetime) # POSIX to Unix
# 1598873710.315678
dt.datetime.fromisoformat("2020-12-31T23:59:59:999999") # ISO to POSIX
# datetime.datetime(2020, 12, 31, 23, 59, 59, 999999)import datetime as dt
from dateutil import tz
dt.datetime.now(tz=tz.tzlocal())
# datetime.datetime(2020, 8, 31, 12, 37, 6, 871020, tzinfo=tzlocal())
dt.datetime.now(tz=tz.gettz("Europe/London")).tzname()
# 'BST'
dt.datetime.now(tz=tz.gettz("America/New_York")).isoformat()
# '2020-08-31T07:37:06.883056-04:00'import datetime as dt
delta = dt.timedelta(days=100)
delta
# datetime.timedelta(days=100)
dt.date.today() - delta
# datetime.date(2020, 5, 23)
(dt.date.today() - delta) < dt.date.today()
# Trueimport datetime as dt
dt.MINYEAR
# 1
dt.MAXYEAR
# dt.tzinfo()
# dt.timezone()
# 9999from pprint import pprint
import datetime as dt
pprint(dir(dt))
# ['MAXYEAR',
# 'MINYEAR',
# '__builtins__',
# '__cached__',
# '__doc__',
# '__file__',
# '__loader__',
# '__name__',
# '__package__',
# '__spec__',
# 'date',
# 'datetime',
# 'datetime_CAPI',
# 'sys',
# 'time',
# 'timedelta',
# 'timezone',
# 'tzinfo']from pprint import pprint
import datetime as dt
pprint(dir(dt.date))
# ['__add__',
# '__class__',
# '__delattr__',
# '__dir__',
# '__doc__',
# '__eq__',
# '__format__',
# '__ge__',
# '__getattribute__',
# '__gt__',
# '__hash__',
# '__init__',
# '__init_subclass__',
# '__le__',
# '__lt__',
# '__ne__',
# '__new__',
# '__radd__',
# '__reduce__',
# '__reduce_ex__',
# '__repr__',
# '__rsub__',
# '__setattr__',
# '__sizeof__',
# '__str__',
# '__sub__',
# '__subclasshook__',
# 'ctime',
# 'day',
# 'fromisocalendar',
# 'fromisoformat',
# 'fromordinal',
# 'fromtimestamp',
# 'isocalendar',
# 'isoformat',
# 'isoweekday',
# 'max',
# 'min',
# 'month',
# 'replace',
# 'resolution',
# 'strftime',
# 'timetuple',
# 'today',
# 'toordinal',
# 'weekday',
# 'year']from pprint import pprint
import datetime as dt
pprint(dir(dt.time))
# ['__class__',
# '__delattr__',
# '__dir__',
# '__doc__',
# '__eq__',
# '__format__',
# '__ge__',
# '__getattribute__',
# '__gt__',
# '__hash__',
# '__init__',
# '__init_subclass__',
# '__le__',
# '__lt__',
# '__ne__',
# '__new__',
# '__reduce__',
# '__reduce_ex__',
# '__repr__',
# '__setattr__',
# '__sizeof__',
# '__str__',
# '__subclasshook__',
# 'dst',
# 'fold',
# 'fromisoformat',
# 'hour',
# 'isoformat',
# 'max',
# 'microsecond',
# 'min',
# 'minute',
# 'replace',
# 'resolution',
# 'second',
# 'strftime',
# 'tzinfo',
# 'tzname',
# 'utcoffset']from pprint import pprint
import datetime as dt
pprint(dir(dt.datetime))
# ['__add__',
# '__class__',
# '__delattr__',
# '__dir__',
# '__doc__',
# '__eq__',
# '__format__',
# '__ge__',
# '__getattribute__',
# '__gt__',
# '__hash__',
# '__init__',
# '__init_subclass__',
# '__le__',
# '__lt__',
# '__ne__',
# '__new__',
# '__radd__',
# '__reduce__',
# '__reduce_ex__',
# '__repr__',
# '__rsub__',
# '__setattr__',
# '__sizeof__',
# '__str__',
# '__sub__',
# '__subclasshook__',
# 'astimezone',
# 'combine',
# 'ctime',
# 'date',
# 'day',
# 'dst',
# 'fold',
# 'fromisocalendar',
# 'fromisoformat',
# 'fromordinal',
# 'fromtimestamp',
# 'hour',
# 'isocalendar',
# 'isoformat',
# 'isoweekday',
# 'max',
# 'microsecond',
# 'min',
# 'minute',
# 'month',
# 'now',
# 'replace',
# 'resolution',
# 'second',
# 'strftime',
# 'strptime',
# 'time',
# 'timestamp',
# 'timetuple',
# 'timetz',
# 'today',
# 'toordinal',
# 'tzinfo',
# 'tzname',
# 'utcfromtimestamp',
# 'utcnow',
# 'utcoffset',
# 'utctimetuple',
# 'weekday',
# 'year']from pprint import pprint
import datetime as dt
pprint(dir(dt.timedelta))
# ['__abs__',
# '__add__',
# '__bool__',
# '__class__',
# '__delattr__',
# '__dir__',
# '__divmod__',
# '__doc__',
# '__eq__',
# '__floordiv__',
# '__format__',
# '__ge__',
# '__getattribute__',
# '__gt__',
# '__hash__',
# '__init__',
# '__init_subclass__',
# '__le__',
# '__lt__',
# '__mod__',
# '__mul__',
# '__ne__',
# '__neg__',
# '__new__',
# '__pos__',
# '__radd__',
# '__rdivmod__',
# '__reduce__',
# '__reduce_ex__',
# '__repr__',
# '__rfloordiv__',
# '__rmod__',
# '__rmul__',
# '__rsub__',
# '__rtruediv__',
# '__setattr__',
# '__sizeof__',
# '__str__',
# '__sub__',
# '__subclasshook__',
# '__truediv__',
# 'days',
# 'max',
# 'microseconds',
# 'min',
# 'resolution',
# 'seconds',
# 'total_seconds']